A GPS receiver determines its global position based on the signals it receives from orbiting GPS or other satellites. The GPS satellites transmit signals using two carriers, namely, an L1 carrier at 1575.42 MHz and an L2 carrier at 1227.60 MHz. Each carrier is modulated by at least a binary pseudorandom (PRN) code, which consists of a to seemingly random sequence of ones and zeros that periodically repeat. The ones and zeros in the PRN code are referred to as "code chips," and the transitions in the code from one to zero or zero to one, which occur at "code chip times," are referred to as "bit transitions." Each satellite uses a unique PRN code, and thus, a GPS receiver can associate a received signal with a particular satellite by determining which PRN code is included in the signal.
The GPS receiver calculates the difference between the time a satellite transmits its signal and the time that the receiver receives the signal. The receiver then calculates its distance, or "pseudorange," from the satellite based on the associated time difference. Using the pseudoranges from at least four satellites, the receiver determines its global position.
To determine the time difference, the GPS receiver synchronizes a locally-generated PRN code with the PRN code in the received signal by aligning the code chips in each of the codes. It then determines how much the locally-generated PRN code is shifted, in time, from the known timing of the satellite PRN code at the time of transmission, and calculates the associated pseudorange. The more closely the GPS receiver aligns the locally-generated PRN code with the PRN code in the received signal, the more precisely the GPS receiver can determine the associated time difference and pseudorange and, in turn, its global position.
The code synchronization operations include acquisition of the satellite PRN code and tracking the code. To acquire the PRN code, the GPS receiver generally makes a series of correlation measurements that are separated in time by a code chip. After acquisition, the GPS receiver tracks the received code. It generally makes "early-minus-late" correlation measurements, i.e., measurements of the difference between (i) a correlation measurement associated with the PRN code in the received signal and an early version of the locally-generated PRN code, and (ii) a correlation measurement associated with the PRN code in the received signal and a late version of the local PRN code. The GPS receiver then uses the early-minus-late measurements in a delay lock loop (DLL), which produces an error signal that is proportional to the misalignment between the local and the received PRN codes. The error signal is used, in turn, to control the PRN code generator, which shifts the local PRN code essentially to minimize the DLL error signal.
The GPS receiver also typically aligns the satellite carrier with a local carrier using correlation measurements associated with a punctual version of the local PRN code. To do this the receiver uses a carrier tracking phase lock loop.
A GPS receiver receives not only line-of-sight, or direct path, satellite signals but also multipath signals, which are signals that travel along different paths and are reflected to the receiver from the ground, bodies of water, nearby buildings, etc. The multipath signals arrive at the GPS receiver after the direct-path signal and combine with the direct-path signal to produce a distorted received signal. This distortion of the received signal adversely affects code synchronization operations because the correlation measurements, which measure the correlation between the local PRN code and the received signal, are based on the entire received signal--including the multipath components thereof. The distortion may be such that the GPS receiver attempts to synchronize to a multipath signal instead of to the direct-path signal. This is particularly true for multipath signals that have code bit transitions that occur close to the times at which code bit transitions occur in the direct-path signal.
One way to more accurately synchronize the received and the locally-generated PRN codes is to use the "narrow correlators" discussed in U.S. Pat. Nos. 5,101,416; 5,390,207 and 5,495,499, all of which are assigned to a common assignee and incorporated herein by reference. It has been determined that narrowing the delay spacing between early and late correlation measurements substantially reduces the adverse effects of noise and multipath signal distortion on the early-minus-late measurements.
The delay spacing is narrowed such that the noise correlates in the early and late correlation measurements. Also, the narrow correlators are essentially spaced closer to a correlation peak that is associated with the punctual PRN code correlation measurements than the contributions of many of the multipath signals. Accordingly, the early-minus-late correlation measurements made by these correlators are significantly less distorted than they would be if they were made at a greater interval around the peak. The closer the correlators are placed to the correlation peak, the more the adverse effects of the multipath signals on the correlation measurements are minimized. The delay spacing can not, however, be made so narrow that the DLL can not lock to the satellite PRN code and then maintain code lock. Otherwise, the receiver cannot track the PRN code in the received signal without repeatedly taking the time to re-lock to the code.
With conventional GPS satellites, the L1 carrier is modulated by two PRN codes, namely, a 1.023 MHz C/A code, and a 10.23 MHz P-code that is encrypted with an encryption code that is known only to government-classified users, such as the military. The L2 carrier is modulated by the encrypted P-code. Generally, a GPS receiver constructed in accordance with the above-referenced patents acquires the satellite signal using a locally-generated C/A code and a locally-generated L1 carrier. After acquisition, the receiver synchronizes the locally-generated C/A code and L1 carrier with the C/A code and L1 carrier in the received signal, using the narrow correlators in a DLL and a punctual correlator in the carrier tracking loop. The receiver may then use the C/A code tracking information to track the L1 and/or L2 P-codes, which have known timing relationships with the C/A code, and with each other.
In a new generation of satellites, the L2 carrier is also modulated by a C/A code that is, in turn, modulated by a 10.23 MHz square wave. The square wave modulated C/A code, which we refer to hereinafter as the "split C/A code," has maximums in its power spectrum at offsets of .+-.10 MHz from the L2 carrier, or in the nulls of the power spectrum of the P-code. The split C/A code can thus be selectively jammed, as necessary, without jamming the L2 P-code.
The autocorrelation function associated with the split C/A code has an envelope that corresponds to the autocorrelation of the 1.023 MHz C/A code and multiple peaks within the envelope the correspond to the autocorrelation of the 10.23 MHz square wave. There are thus 20 peaks within a two chip C/A code envelope, or a square wave autocorrelation peak every 0.1 C/A code chips. The multiple peaks associated with the square wave are each relatively narrow, and thus, offer increased code tracking accuracy, assuming the DLL tracks the correct narrow peak.
It is our understanding that known GPS receivers acquire and track the split-C/A code in a conventional manner, using a locally-generated split-C/A code and L2 carrier. The receivers thus attempt to align the code chips of a receiver-generated split-C/A code with the code chips of the received split-C/A code, to track the center peak of the square-wave autocorrelation function. In the absence of multipath signals, the receivers track the center peak by tracking a peak that has the largest amplitude. If multipath signals are included in the received signal, however, the amplitude of the center peak of the square-wave autocorrelation function may not be discernibly greater than the amplitudes of nearby peaks. Accordingly, the DLL may track a peak that is 0.1 or 0.2 C/A code chips away from the center peak, and the receiver thus produce correspondingly inaccurate position measurements.